package boot.spring.consumerConfirm;


import boot.spring.rabbitMQ.listener.DirectAckListener;
import org.springframework.amqp.core.AcknowledgeMode;
import org.springframework.amqp.rabbit.connection.CachingConnectionFactory;
import org.springframework.amqp.rabbit.listener.SimpleMessageListenerContainer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


//消费者手动确认监听配置
@Configuration
public class MessageListenerConfig {

        @Autowired
        private CachingConnectionFactory connectionFactory;
        @Autowired
        private DirectAckListener myAckReceiver;//消息接收处理类

        @Bean
        public SimpleMessageListenerContainer simpleMessageListenerContainer() {
            SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(connectionFactory);
            container.setConcurrentConsumers(1);
            container.setMaxConcurrentConsumers(1);
            container.setAcknowledgeMode(AcknowledgeMode.MANUAL); // RabbitMQ默认是自动确认，这里改为手动确认消息
            //设置两个队列
            container.setQueueNames("directAckQueue1","directAckQueue2");



            container.setMessageListener(myAckReceiver);

            return container;
        }

}
